#!/usr/bin/env bash
# ******************************************************
# Author       : kklinux
# Last modified: 2019-12-13 15:30
# Email        : kklinux@126.com
# Filename     : hniu_updata.sh
# Description  : 
# ******************************************************

#颜色变量
red_font="\033[31m"
green_font="\033[32m"
yellow_font="\033[33m"
green_bg="\033[42;37m"
red_bg="\033[41;37m"
end_font="\033[0m"
info="${green_font}[信息]${end_font}"
tip="${yellow_font}[提示]${end_font}"
error="${red_font}[错误]${end_font}"

#版本变量
hniu_ver="2.3.4"
local_ver="2.3.4"
net_url="https://gitee.com/kklinux/shell/raw/master/hniu/hniu_updata.sh"
net_ver=$(wget --no-check-certificate -qO- -t1 -T3 $net_url|grep hniu_ver|awk -F = '{print $NF}'|sed 's/\"//g'|head -1)

#获取网络总版本号中的1,2,3号版本号
n_1=$(echo ${net_ver}|awk -F . '{print $1}')
n_2=$(echo ${net_ver}|awk -F . '{print $2}')
n_3=$(echo ${net_ver}|awk -F . '{print $3}')
#格式化网络3版本号
n_3=$(echo "${n_3} 0"|awk '{printf "%.0f\n",$1+$2}')
#获取本地总版本号中的1,2,3号版本号
l_1=$(echo ${local_ver}|awk -F . '{print $1}')
l_2=$(echo ${local_ver}|awk -F . '{print $2}')
l_3=$(echo ${local_ver}|awk -F . '{print $3}')

down_sh() {

wget -N --no-check-certificate "${net_url}" && chmod +x update.sh
echo -e "${red_font}更新完成${end_font}"
printf "\n\n"
exit

}

updata() {
(
[[ $n_1 = $l_1 ]] && [[ $n_2 = $l_2 ]] && [[ $n_3 = $l_3 ]] && exit 0
[[ $n_1 = $l_1 || $n_1 > $l_1 ]] && [[ $n_2 = $l_2 || $n_2 > $l_2 ]] && [[ $n_3 = $l_3 || $n_3 > $l_3 ]] && exit 1
[[ $n_1 = $l_1 || $n_1 < $l_1 ]] && [[ $n_2 = $l_2 || $n_2 < $l_2 ]] && [[ $n_3 = $l_3 || $n_3 < $l_3 ]] && exit 2
)
decide_ver=$?
#echo "子shell返回值："$decide_ver
if [ $decide_ver -eq 1 ];then
	echo "检测到新版本，开始更新"
	sleep 1
	down_sh
fi

}

#清屏函数
function qp() {
tput clear
}

#任意键跳转
get_char()
{
	SAVEDSTTY=`stty -g`
	stty -echo
	stty cbreak
	dd if=/dev/tty bs=1 count=1 2> /dev/null
	stty -raw
	stty echo
	stty $SAVEDSTTY
}

goto_menu() {
echo -e "输入${red_font}任意键${end_font}跳转菜单,或使用${red_font}CTRL+C${end_font}终止命令！"
char=`get_char`
menu
}

##以下为功能函数
#
function t1() {
##**********************************************##
##--------------此处添加函数代码----------------##

echo "--------------第一----------------"

echo -e "${info}"


##--------------此处添加函数代码----------------##
##**********************************************##
printf "\n\n"
goto_menu

}

function t2() {
##**********************************************##
##--------------此处添加函数代码----------------##

echo "--------------第二----------------"

echo -e "${info}"


##--------------此处添加函数代码----------------##
##**********************************************##
printf "\n\n"
goto_menu

}
#菜单函数
function menu() {
qp
echo -e "  ${red_bg}一键更新脚本${end_font}

${green_font}1.${end_font} ${red_font}\t第1${end_font}
${green_font}2.${end_font} ${red_font}\t第2${end_font}
${green_font}3.${end_font} ${red_font}\t更新脚本${end_font}
${red_font}——————————————${end_font}
${info}${yellow_font}q为退出脚本${end_font}
"
echo && read -e -p "请输入选项 [1-3/q]：" num

until [[ $num == 0 || $num == 1 || $num == 2  || $num == 3 || $num == q ]]
do
	echo -ne "$tip" && read -e -p "请输入选项 [1-3/q]：" num
done
case "$num" in
	1)
	qp
	t1
	;;
	2)
	qp
	t2
	;;
	3)
	qp
	down_sh
	goto_menu
	;;
	q)
	exit
	;;
	*)
	echo -e "${Error} 请输入正确的选项 [1-3/q]"
	;;
esac
}

run() {
updata
menu
}

run
